phplint
phplint is a node wrapper around the native php linter that allows for
parallel linting and integration with build systems like
Grunt, Gulp and more.

Usage
CLI
$ npm i -g phplint
$ phplint '**/*.php'
Paths and filenames are parsed using
globby, so the following would work
as well:
$ phplint '**/*.php' '!vendor/**'
Node
var phplint = require('phplint').lint
phplint(['src/**/*.php'], function (err, stdout, stderr) {
if (err) throw new Error(err)
process.stdout.write(stdout)
process.stderr.write(stderr)
})
NPM
{
"scripts": {
"pretest": "phplint 'src/**/*.php'"
},
"devDependencies": {
"phplint": "~1.0.0"
}
}
$ npm test
Grunt
Configure cache directories
This module uses the cache-swap
module to cache already linted files.
You can configure the cache directories via the cacheDirName
and the tmpDir
options.
Both options will be passed to the CacheSwap instance when created.
module.exports = function (grunt) {
require('phplint').gruntPlugin(grunt)
grunt.initConfig({
phplint: {
options: {
limit: 10,
phpCmd: '/home/scripts/php',
stdout: true,
stderr: true,
useCache: true,
tmpDir: '/custom/root/folder',
cacheDirName: 'custom/subfolder'
},
files: 'src/**/*.php'
}
})
grunt.registerTask('test', ['phplint'])
}
$ grunt test
Gulp
The same options that can be used in Grunt can be used in Gulp too.
var gulp = require('gulp')
var phplint = require('phplint').lint
gulp.task('phplint', function (cb) {
phplint(['src/**/*.php'], {limit: 10}, function (err, stdout, stderr) {
if (err) {
cb(err)
process.exit(1)
}
cb()
})
})
gulp.task('test', ['phplint'])
$ gulp test
Related
License
MIT © Wayne Ashley Berry